package com.nuoniu.sibanyun.service.crm;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nuoniu.sibanyun.entity.SysCompany;
import com.nuoniu.sibanyun.entity.SysUser;
import com.nuoniu.sibanyun.entity.crm.CrmGoodsOrder;

import java.math.BigDecimal;

/**
 * <p>
 * 商品订单 服务类
 * </p>
 *
 * @author baiqiang
 * @since 2020-07-17
 */
public interface ICrmGoodsOrderService extends IService<CrmGoodsOrder> {

    /**
     * 分页获取商品订单
     * @author 小啊刚
     * @date 2020-07-21
     */
    Page<CrmGoodsOrder> pageOrder(Page page, CrmGoodsOrder order);

    /**
     * 获取订单号
     * @author 小啊刚
     * @date 2020-07-21
     */
    String getOrderNo();

    /**
     * 修改公司名称
     * @author 小啊刚
     * @date 2020-08-05
     */
    void updateCompanyName(SysCompany company);

    /**
     * 订单续费
     * @author 小啊刚
     * @date 2021-04-07
     */
    void saveRenew(CrmGoodsOrder order);

    /**
     * 购买 产品
     * @param order
     */
    void saveOrder(CrmGoodsOrder order);

    /**
     * 购买 无商品 订单
     * @param order
     */
    void saveOrderForSimple(CrmGoodsOrder order);

    /**
     * 处理支付后的业务
     * @param orderId
     * @param payType
     */
    void updateOrder(String orderId, Integer payType);
    /**
     * 奖励上级用户
     * @author 小啊刚
     * @date 2020-07-27
     */
    void rewardShareUser(SysCompany company, BigDecimal buyerPayAmount, CrmGoodsOrder order);
    /**
     * 保存佣金记录
     * @author 小啊刚
     * @date 2020-07-28
     */
    void saveCommissionRecord(String companyName, String orderNo, BigDecimal buyerPayAmount, Integer rewardRate, Integer level, BigDecimal income, SysUser user, String name, Double rate);
}
